home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / enlightenment / e_module.h < prev    next >
C/C++ Source or Header  |  2006-01-09  |  2KB  |  74 lines

  1. /*
  2.  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
  3.  */
  4. #ifdef E_TYPEDEFS
  5.  
  6. #define E_MODULE_API_VERSION 2
  7.  
  8. typedef struct _E_Module     E_Module;
  9. typedef struct _E_Module_Api E_Module_Api;
  10.  
  11. #else
  12. #ifndef E_MODULE_H
  13. #define E_MODULE_H
  14.  
  15. #define E_MODULE_TYPE 0xE0b0100b
  16.  
  17. struct _E_Module
  18. {
  19.    E_Object             e_obj_inherit;
  20.  
  21.    E_Module_Api        *api;
  22.    
  23.    char                *name;
  24.    char                *dir;
  25.    void                *handle;
  26.    
  27.    struct {
  28.       void * (*init)        (E_Module *m);
  29.       int    (*shutdown)    (E_Module *m);
  30.       int    (*save)        (E_Module *m);
  31.       int    (*info)        (E_Module *m);
  32.       int    (*about)       (E_Module *m);
  33.       int    (*config)      (E_Module *m);
  34.    } func;
  35.    
  36.    unsigned char        enabled : 1;
  37.    unsigned char        error : 1;
  38.    
  39.    /* the module is allowed to modify these */
  40.    void                *data;
  41.    E_Menu              *config_menu;
  42.  
  43.    /* modify these but only set them up when the info func is called */
  44.    /* e_module will free them when the module is freed. */
  45.    /* note you will need to malloc (strdup) these fields due to the free */
  46.    char                *icon_file;
  47.    char                *edje_icon_file;
  48.    char                *edje_icon_key;
  49. };
  50.  
  51. struct _E_Module_Api
  52. {
  53.    int         version;
  54.    const char *name;
  55. };
  56.  
  57. EAPI int          e_module_init(void);
  58. EAPI int          e_module_shutdown(void);
  59.  
  60. EAPI E_Module    *e_module_new(char *name);
  61. EAPI int          e_module_save(E_Module *m);
  62. EAPI const char  *e_module_dir_get(E_Module *m);
  63. EAPI int          e_module_enable(E_Module *m);
  64. EAPI int          e_module_disable(E_Module *m);
  65. EAPI int          e_module_enabled_get(E_Module *m);
  66. EAPI int          e_module_save_all(void);
  67. EAPI E_Module    *e_module_find(char *name);
  68. EAPI Evas_List   *e_module_list(void);
  69. EAPI E_Menu      *e_module_menu_new(void);
  70. EAPI void         e_module_dialog_show(char *title, char *body);
  71.  
  72. #endif
  73. #endif
  74.